home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 10
/
FM Towns Free Software Collection 10.iso
/
fb386
/
tool
/
cdp
/
cdp.bas
next >
Wrap
BASIC Source File
|
1995-02-16
|
3KB
|
68 lines
60000 *CP_START
60010 ON ERROR GOTO *CP_ERR
60020 CP_MMX!=MOUSE(0):CP_MMY!=MOUSE(1)
60030 DIM CP_BA!(71),CP_OP%(35):MOUSE 1,,,1
60040 MOUSE 4,CP_X!,CP_Y!,CP_X!+23,CP_Y!+16
60050 for cp_=3 to 33 step 2:cp_op%(cp_)=16384:next
60060 for cp_=6 to 14 step 2:cp_op%(cp_-12*(cp_>11))=-32606:next
60070 cp_op%(1)=-16129:cp_op%(35)=-16129:cp_op%(34)=-1
60080 cp_op%(0)=-1:cp_op%(2)=-32640:cp_op%(4)=-32578:cp_op%(12)=-32578
60090 cp_op%(14)=-32640:cp_op%(16)=-32513:cp_op%(18)=-32640:cp_op%(20)=-32592
60100 cp_op%(22)=-32596:cp_op%(28)=-32596:cp_op%(30)=-32592:cp_op%(32)=-32640
60110 GET@A (CP_X!,CP_Y!)-(CP_X!+25,CP_Y!+17),CP_BA!
60120 LINE (CP_X!,CP_Y!)-STEP(25,17),PSET,7,BF
60130 put@ (cp_x!,cp_y!)-(cp_x!+25,cp_y!+17),cp_op%,,0
60140 CDINF CP_IN%:CDSTAT CP_ST%
60150 CP_ST!=CP_ST%(5)-(CP_ST%(1)=0)
60160 IF CP_ST%(1) THEN LINE (CP_X!+1,CP_Y!+9)-STEP(6,7),XOR,7,BF
60170 *CP_LOOP
60180 CDSTAT CP_ST%
60190 LINE(CP_X!+9,CP_Y!+1)-STEP(15,15),PSET,7,BF
60200 SYMBOL (CP_X!+9,CP_Y!+1),RIGHT$(STR$(CP_ST!),2),1,1,0
60210 WHILE MOUSE(2,0) OR MOUSE(2,1):CDSTAT CP_ST%:WEND
60220 WHILE MOUSE(2,0)=0 AND MOUSE(2,1)=0:CDSTAT CP_ST%:WEND
60230 IF MOUSE(2,1) THEN *CP_END
60240 CP_MX!=MOUSE(4,0)-CP_X!:CP_MY!=MOUSE(5,0)-CP_Y!-1
60250 CP_R=CP_MX!\8+(CP_MY!\8)*3
60260 IF CP_MY!=-1 THEN *CP_MOV
60270 CP_ST!=CP_ST!+(CP_R=1 OR CP_R=4)-(CP_R=2 OR CP_R=5)
60280 CP_ST!=CP_ST!+(CP_ST!>CP_IN%(5))-(CP_ST!<1)
60290 IF CP_ST!<>CP_ST%(5) AND CP_ST%(1)=1 THEN *CP_PL
60300 IF CP_R=0 AND CP_ST%(1)=1 THEN *CP_ST
60310 IF CP_R=3 AND CP_ST%(1)=0 THEN *CP_PL
60320 GOTO *CP_LOOP
60330 *CP_PL
60340 IF CP_IF%(1)>1 AND CP_ST%(1)=1 THEN GOTO *CP_LOOP
60350 IF CP_ST%(1)=0 THEN LINE (CP_X!+1,CP_Y!+9)-STEP(6,7),XOR,7,BF
60360 CD PLAY CP_ST!:GOTO *CP_LOOP
60370 *CP_ST
60380 LINE (CP_X!+1,CP_Y!+9)-STEP(6,7),XOR,7,BF
60390 CD STOP:GOTO *CP_LOOP
60400 *CP_NODISK
60410 IF CP_ST!>-1 THEN LINE(CP_X!,CP_Y!)-STEP(25,17),XOR,7,BF
60420 IF MOUSE(2,1) THEN *CP_END
60430 CP_ST!=-1
60440 CDINF CP_IN%:CDSTAT CP_ST%
60450 CP_ST!=CP_ST%(5)-(CP_ST%(1)=0)
60460 LINE(CP_X!,CP_Y!)-STEP(25,17),XOR,7,BF
60470 GOTO *CP_LOOP
60480 *CP_MOV
60490 ON ERROR GOTO 0:MOUSE 4,25,0,614,462
60500 CP_MX!=MOUSE(9):CP_MY!=MOUSE(10):CP_MX!=CP_X!:CP_MY!=CP_Y!
60510 WHILE MOUSE(2,0)
60520 LINE(CP_MX!,CP_MY!)-STEP(25,17),XOR,7,B
60530 CP_MX!=CP_MX!+MOUSE(9):CP_MY!=CP_MY!+MOUSE(10)
60540 LINE(CP_MX!,CP_MY!)-STEP(25,17),XOR,7,B
60550 WEND
60560 LINE(CP_MX!,CP_MY!)-STEP(25,17),XOR,7,B
60570 PUT@A (CP_X!,CP_Y!)-(CP_X!+25,CP_Y!+17),CP_BA!
60580 CP_X!=CP_MX!:CP_Y!=CP_MY!:GOTO *CP_START
60590 *CP_ERR
60600 IF ERR=53 THEN RESUME *CP_NODISK
60610 IF ERR=10 THEN RESUME NEXT
60620 PRINT ERR,ERL:ERROR ERR
60630 *CP_END
60640 PUT@A (CP_X!,CP_Y!)-(CP_X!+25,CP_Y!+17),CP_BA!
60650 MOUSE 4,0,0,639,479:MOUSE 1,CP_MMX!,CP_MMY!,1
60660 RETURN